package com.library.entity;

import lombok.Data;
import java.util.Date;

/**
 * 员工实体类（对应数据库 staff 表）
 * 存储员工基本信息，用于员工管理模块的增删改查操作
 */
@Data // Lombok注解：自动生成getter、setter、toString、equals、hashCode方法
public class Staff {
    /**
     * 员工ID（主键，自增）
     * 对应数据库字段：id（BIGINT）
     */
    private Long id;

    /**
     * 员工姓名
     * 对应数据库字段：name（VARCHAR(100)，非空）
     */
    private String name;

    /**
     * 员工编号（唯一标识，如"EMP2024001"）
     * 对应数据库字段：employee_id（VARCHAR(20)，非空且唯一）
     */
    private String employeeId;

    /**
     * 员工职位（如"管理员"、"图书管理员"）
     * 对应数据库字段：position（VARCHAR(100)，可空）
     */
    private String position;

    /**
     * 联系电话
     * 对应数据库字段：phone（VARCHAR(20)，可空）
     */
    private String phone;

    /**
     * 入职日期
     * 对应数据库字段：hire_date（DATE，可空）
     * 注意：Java 8 Date类型与数据库DATE类型自动适配
     */
    private Date hireDate;

    /**
     * 记录创建时间（自动填充，无需手动设置）
     * 对应数据库字段：created_at（DATETIME，默认CURRENT_TIMESTAMP）
     */
    private Date createdAt;

    /**
     * 记录更新时间（自动更新，无需手动设置）
     * 对应数据库字段：updated_at（DATETIME，默认CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP）
     */
    private Date updatedAt;
}